package cn.iocoder.yudao.module.crossborder.platform.dal.dataobject.platformapilog;

import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;

import java.time.LocalDateTime;

/**
 * 跨境电商平台API调用日志 DO
 *
 * @author 芋道源码
 */
@TableName("crossborder_platform_api_log")
@KeySequence("crossborder_platform_api_log_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class PlatformApiLogDO extends BaseDO {

    /**
     * 日志编号
     */
    @TableId
    private Long id;
    /**
     * 平台编号
     */
    private Long platformId;
    /**
     * 店铺编号
     */
    private Long storeId;
    /**
     * API配置编号
     */
    private Long apiConfigId;
    /**
     * 同步任务编号
     */
    private Long syncTaskId;
    /**
     * 链路追踪编号
     */
    private String traceId;
    /**
     * API类型
     */
    private String apiType;
    /**
     * API名称
     */
    private String apiName;
    /**
     * API端点
     */
    private String apiEndpoint;
    /**
     * HTTP方法
     */
    private String httpMethod;
    /**
     * 请求头
     */
    private String requestHeaders;
    /**
     * 请求参数
     */
    private String requestParams;
    /**
     * 请求体
     */
    private String requestBody;
    /**
     * 响应状态码
     */
    private Integer responseStatus;
    /**
     * 响应头
     */
    private String responseHeaders;
    /**
     * 响应体
     */
    private String responseBody;
    /**
     * 开始时间
     */
    private LocalDateTime startTime;
    /**
     * 结束时间
     */
    private LocalDateTime endTime;
    /**
     * 执行时长（毫秒）
     */
    private Integer duration;
    /**
     * 是否成功
     */
    private Boolean success;
    /**
     * 错误代码
     */
    private String errorCode;
    /**
     * 错误信息
     */
    private String errorMsg;
    /**
     * 重试次数
     */
    private Integer retryCount;
    /**
     * 用户IP
     */
    private String userIp;
    /**
     * 用户代理
     */
    private String userAgent;


}
